package com.itlong.cloud.paymenthub;

import com.itlong.cloud.POJO.DTO.operate.OperateWithdrawPageDTO;
import com.itlong.cloud.POJO.VO.operate.OperateFinaceInfoVO;
import com.itlong.cloud.POJO.VO.operate.OperateWithdrawVO;
import com.itlong.cloud.utils.page.Page;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <desc>
 *      运营-财务管理-财务提现审核接口暴露。
 * <desc/>
 *
 * @createDate 2018/09/20.
 */
@FeignClient(name = "payment-hub-service")
public interface IOperateWithdrawServiceClient {

    /**
     * <desc>
     *      财务提现审核信息分页查询
     * <desc/>
     *
     * @param operateWithdrawPageDTO 分页查询参数
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    @RequestMapping(path="/operate/finance/withdraw/getWithdrawInfoPage",method = {RequestMethod.POST})
    Page<OperateWithdrawVO> getWithdrawInfoPage(@RequestBody OperateWithdrawPageDTO operateWithdrawPageDTO) throws Exception;

    /**
     * <desc>
     *      审批拒绝
     * <desc/>
     *
     * @param cashIds 提现记录ID,逗号分隔
     * @param myUserName 登陆用户编号
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    @RequestMapping(path="/operate/finance/withdraw/refuse",method = {RequestMethod.POST})
    Integer refuse(@RequestParam("cashIds") String cashIds,@RequestParam("myUserName")String myUserName) throws Exception;

    /**
     * <desc>
     *      修改备注
     * <desc/>
     *
     * @param cashId 提现记录ID
     * @param remark 备注
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    @RequestMapping(path="/operate/finance/withdraw/updateRemark",method = {RequestMethod.POST})
    Integer updateRemark(@RequestParam("cashId") String cashId, @RequestParam("remark") String remark) throws Exception;

    /**
     * <desc>
     *      修改状态
     * <desc/>
     *
     * @param cashId 提现记录ID
     * @param tradeStatus 3提现成功 4提现失败
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    @RequestMapping(path="/operate/finance/withdraw/updateTradeStatus",method = {RequestMethod.POST})
    Integer updateTradeStatus(@RequestParam("cashId") String cashId, @RequestParam("tradeStatus") String tradeStatus) throws Exception;

    /**
     * <desc>
     *      系统财务汇总
     * <desc/>
     *
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    @RequestMapping(path="/operate/finance/withdraw/getFinaceInfo",method = {RequestMethod.POST})
    OperateFinaceInfoVO getFinaceInfo() throws Exception;

    /**
     * <desc>
     *      根据条件查询财务提现审核信息
     * <desc/>
     *
     * @param operateWithdrawPageDTO 查询参数
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    @RequestMapping(path="/operate/finance/withdraw/getWithdrawInfoForExcle",method = {RequestMethod.POST})
    List<OperateWithdrawVO> getWithdrawInfoForExcle(@RequestBody OperateWithdrawPageDTO operateWithdrawPageDTO) throws Exception;

    /**
     * <desc>
     *      财务提现审核明细查询
     * <desc/>
     *
     * @param cashId 提现记录ID
     * @return
     * @author Qiang.S
     * @createDate 2018-09-27
     */
    @RequestMapping(path="/operate/finance/withdraw/getWithdrawDetail",method = {RequestMethod.POST})
    OperateWithdrawVO getWithdrawDetail(@RequestParam("cashId") String cashId) throws Exception;

}
